Tạo khoá Giải_thuật_ký_số

  • Chọn số nguyên tố 160 bit q.
  • Chọn một số nguyên tố L bit p, sao cho p=qz+1 với số nguyên z nào đó, 512 ≤ L ≤ 1024, L chia hết cho 64.

Chú ý: Trong FIPS-186-2, giả sử L luôn bằng 1024.

  • Chọn h, với 1 < h < p - 1 sao cho g = hz mod p > 1. (z = (p-1) / q.)
  • Chọn x ngẫu nhiên, thoả mãn 0 < x < q.
  • Tính giá trị y = gx mod p.
  • Khoá công khai là (p, q, g, y). Khoá riêng là x.

Chú ý (p, q, g) có thể dùng chung bởi nhiều người dùng trong hệ thống, nếu muốn.FIPS 186-3 sử dụng SHA-224/256/384/512 như hàm băm, q với kích thước 224, 256, 384, và512 bit, L nhận giá trị 2048, 3072, 7680, và 15360 tương ứng.Có các giải thuật hiệu quả để tính toán các biểu thức mũ và lấy phần dư khi chia cho số nguyên tố lớn hz mod p và gx mod p.

Hầu hết các số h đều thoả mãn yêu cầu, vì vậy giá trị 2 thông thường được sử dụng.